Visual display systems and method for manipulating images of a real scene using augmented reality

ABSTRACT

The present disclosure relates to a visual display system for manipulating images of a real scene using augmented reality. In one implementation, the system may include at least one processor in communication with a first mobile device; and a storage medium storing instructions that, when executed, configure the at least one processor to perform operations. The operations may include receiving a request from a mobile device to access an account of a user, receiving a first image depicting a real scene from an image sensor of the mobile device, receiving a selection of a virtual object, receiving an augmented reality image comprising the virtual object overlaid on the first image, comparing the augmented reality image to one or more stored augmented reality images, authenticating the user based on the comparison, and authorizing access to the user account based on the authentication.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.16/007,284 filed Jun. 13, 2018, which is a continuation of U.S.application Ser. No. 16/000,861, filed Jun. 5, 2018. The contents ofboth applications are incorporated herein by reference in theirentirety.

TECHNICAL FIELD

This disclosure relates generally to the field of augmented reality.More specifically, and without limitation, this disclosure relates tosystems and methods for manipulating images of a real scene usingaugmented reality.

BACKGROUND

Current techniques for authentication and verification of users sufferfrom multiple drawbacks. For example, in a typical authentication orverification method, a user registers for an account and providesregistration information required for authentication. This registrationinformation typically includes a username and password. As manypasswords can be easily guessed, circumvented, or cracked with currenttechnologies, users are typically required to enter a complex passwordconsisting of a combination of different letters, numbers, and/orsymbols. However, complex passwords still suffer from technical problemsand create security vulnerabilities. Additionally, such passwords can bedifficult for users to remember, creating greater security risks whenusers reuse passwords across multiple accounts or store their passwordsin easily accessible locations or documents. Moreover, the typical userinterfaces for authentication and verification are standardized and thuseasy to manipulate, presenting further security risks. For example,common phishing scams include sending a user an email containing a linkto a legitimate-looking login page, where the user is tricked intoentering sensitive account information. A need therefore exists forsystems and methods of providing improved authentication andverification for users in a secure, user-friendly interface.

Augmented reality technology allows virtual imagery to be mixed with areal-world physical environment. In other words, computer-generatedinformation may be superimposed on images of real-world elements of aphysical environment to provide interactive and enhanced userenvironment. Augmented reality techniques are typically performed inreal time and in semantic context with environmental elements. Immersiveperceptual information is sometimes combined with supplementalinformation. For example, the augmented reality view may includeinformation related to a physical environment presented to the user, viaa display.

Commercial applications for augmented reality technology are primarilyfor informational purposes. For example, augmented reality technologymay be used in sports broadcasts to superimpose live scores over a livevideo feed of a sporting event. While it is known to use augmentedreality tools to enrich user experience, at present, there is noavailable method to integrate augmented reality technology into userauthentication methods.

The disclosed system and methods for presenting augmented realitycontent to a user address the existing problems set forth above, as wellas other deficiencies in the prior art, and are directed to an improvedvisual display system for authenticating users by manipulating images ofa real scene using augmented reality technology.

SUMMARY

Embodiments of the present disclosure use visual display systems andmethods to manipulate images of a real scene using augmented reality.The visual display systems enable secure registration and authenticationof users via augmented reality technology. In this manner, the disclosedembodiments can provide a marked improvement over the processes known inthe prior art.

One embodiment of the present disclosure is directed to a visual displaysystem for manipulating images of a real scene using augmented reality.The system includes at least one processor in communication with a firstmobile device, and a storage medium storing instructions that, whenexecuted, configure the at least one processor to perform operations.The operations may include receiving a request from the first mobiledevice to access an account of a user, receiving a first image from animage sensor of the first mobile device, the first image depicting areal scene, receiving a selection of a first virtual object, receivingan augmented reality image comprising the first virtual object overlaidon the first image, comparing the augmented reality image to one or morestored augmented reality images, authenticating the user based on thecomparison, and authorizing access to the user account based on theauthentication.

Another embodiment of the present disclosure is directed to acomputer-implemented method for manipulating images of a real sceneusing augmented reality. The method comprises receiving a request from afirst mobile device to access a user account, receiving a first imagefrom an image sensor of the first mobile device, the first imagedepicting a real scene, receiving a selection of a virtual object,receiving an augmented reality image comprising the virtual objectoverlaid on the first image, comparing the augmented reality image toone or more stored augmented reality images, authenticating the userbased on the comparison; and authorizing access to the user accountbased on the authentication.

A further embodiment of the present disclosure is directed to anon-transitory computer-readable medium. The computer-readable mediumstoring instructions that, when executed by at least one processor,cause the at least one processor to operate a visual display system formanipulating images of a real scene using augmented reality includingreceiving a request from a first mobile device to access a user account,receiving a first image from an image sensor of the first mobile device,the first image depicting a real scene, receiving a selection of avirtual object, receiving an augmented reality image comprising thevirtual object overlaid on the first image, comparing the augmentedreality image to one or more stored augmented reality images,authenticating the user based on the comparison, and authorizing accessto the user account based on the authentication.

In some embodiments, the visual display system is configured to performfurther operations including receiving a request to register the userusing augmented reality, receiving a registration image from an imagesensor of a second mobile device, the registration image depicting areal scene, receiving a selection of a second virtual object, generatingan augmented reality registration image comprising the second virtualobject overlaid on the registration image, and storing the augmentedreality registration image in the user account.

In some embodiments, the visual display system is configured to performfurther operations including determining a location of the second mobiledevice, and embedding location information into the registration imagebased on a determined location of the second mobile device. In furtheraspects, the visual display system is configured to perform furtheroperations including determining a location of the first mobile device,and embedding location information into the first image based on adetermined location of the first mobile device.

In some embodiments, the visual display system is configured to performfurther operations including verifying that the first image was receivedfrom the image sensor of the first mobile device. The verification mayinclude at least one of detecting a file format of the first image,detecting usage of the image sensor, detecting movement of the firstmobile device, or determining a location of the first mobile device. Inone aspect, the file format of the first image includes video data andstill image data.

In some embodiments, the visual display system is configured to performfurther operations including calculating a comparison metric associatedwith the comparison of the augmented reality image and one or moreaugmented reality registration images stored in a database, and matchingthe augmented reality image to an augmented reality registration imagebased on the comparison metric. In some aspects, the comparison metriccomprises a metric generated by a machine learning processor.

In some embodiments, the visual display system is configured to performfurther operations including calculating a first comparison metricassociated with a comparison of the augmented reality image to one ormore stored augmented reality registration images, and calculating asecond comparison metric associated with a comparison of the first imagewith one or more stored registration images.

In some embodiments, the visual display system is configured to performfurther operations including determining a confidence score representinga level of confidence that the augmented reality image matches theaugmented reality registration image, and authenticating the user whenthe determined confidence score is above a first threshold. In someaspects, the user is authenticated only when the determined confidencescore is at least equal to the first threshold. In yet another aspect, averification challenge is performed when the determined confidence scoreis below the first threshold and above a second threshold. Theverification challenge may include a one-time passcode transmitted tothe user via the first mobile device. The user may be authenticated whenthe system receives a one-time passcode matching the transmittedone-time passcode. The one-time passcode may include a passcode validonly within a predetermined amount of time.

In some embodiments, the visual display system is configured to performfurther operations including determining a confidence score based on thecomparison metric. The comparison metric may include a percentage matchbetween the augmented reality image and the augmented realityregistration image. In some embodiments, the comparison metric maycomprise a first comparison metric associated with a comparison of theaugmented reality image to one or more stored augmented realityregistration images, and a second comparison metric associated with acomparison of the first image with one or more stored registrationimages. In some embodiments, the confidence score is based on the firstand/or the second comparison metric.

In some aspects, the confidence score is determined based on acomparison of a factor associated with the augmented reality image andthe augmented reality registration image. The factor may include one ormore of embedded location information, a time stamp, a date stamp,lighting conditions, or image metadata.

In some embodiments, the visual display system is configured to performfurther operations including displaying the registration image on adisplay of the second mobile device, overlaying a grid on the displayedregistration image, and overlaying the second virtual object within auser-selected position on the grid.

In some embodiments, the visual display system is configured to performfurther operations including receiving a user identifier associated withthe user account, retrieving an augmented reality registration imagestored in the user account, and transmitting a translucent version ofthe augmented reality registration image for display on the first mobiledevice. The translucent version of the image may provide guidance forobtaining the first image.

Additional objects and advantages of the present disclosure will be setforth in part in the following detailed description, and in part will beobvious from the description, or may be learned by practice of thepresent disclosure. The objects and advantages of the present disclosurewill be realized and attained by means of the elements and combinationsparticularly pointed out in the appended claims.

It is to be understood that the foregoing general description and thefollowing detailed description are exemplary and explanatory only, andare not restrictive of the disclosed embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which comprise a part of this specification,illustrate several embodiments and, together with the description, serveto explain the disclosed principles. In the drawings:

FIG. 1 is a block diagram of an exemplary system, consistent withdisclosed embodiments.

FIG. 2 is a block diagram of an exemplary mobile device, consistent withdisclosed embodiments.

FIG. 3 is a block diagram of an exemplary database, consistent withdisclosed embodiments.

FIG. 4 is a flowchart of an exemplary method for registering forauthentication using augmented reality, consistent with disclosedembodiments.

FIG. 5 is a flowchart of an exemplary method for authenticating a userusing augmented reality, consistent with disclosed embodiments.

FIG. 6 is a flowchart of an exemplary method for embedding locationinformation in images, consistent with disclosed embodiments.

FIG. 7 is a flowchart of an exemplary method for verifying images,consistent with disclosed embodiments.

FIG. 8 is a flowchart of an exemplary method for calculating comparisonmetrics between images, consistent with disclosed embodiments.

FIG. 9 is a flowchart of an exemplary method for using a confidencescore to authenticate users, consistent with disclosed embodiments.

FIG. 10 is a flowchart of an exemplary method for calculating aconfidence score, consistent with disclosed embodiments.

FIG. 11 is an illustration of a mobile device capturing an image of areal-world environment, consistent with disclosed embodiments.

FIG. 12 is an illustration of a user interface on a mobile device,consistent with disclosed embodiments.

FIG. 13 is another illustration of a user interface on a mobile device,consistent with disclosed embodiments.

DETAILED DESCRIPTION

The disclosed embodiments relate to systems and methods forauthentication by manipulating images of a real scene using augmentedreality. Reference will now be made in detail to exemplary embodimentsand aspects of the present disclosure, examples of which are illustratedin the accompanying drawings. While numerous specific details are setforth in order to provide a thorough understanding of the disclosedexample embodiments, it would be understood by those skilled in the artthat the principles of the example embodiments may be practiced withoutevery specific detail. Unless explicitly stated, the example methods andprocesses described herein are not constrained to a particular order orsequence, or constrained to a particular system configuration.Additionally, some of the described embodiments or elements thereof canoccur or be performed simultaneously, at the same point in time, orconcurrently. Reference will now be made in detail to the disclosedembodiments, examples of which are illustrated in the accompanyingdrawings.

Embodiments of the present disclosure may be implemented using ageneral-purpose computer. Alternatively, a special-purpose computer maybe built consistent with embodiments of the present disclosure usingsuitable circuit elements.

As used herein, the term “image data” or “image” may refer to digitalinformation representing an image and stored in an appropriate format.Appropriate formats include, for example, static image formats (e.g.,bitmap, Graphics Interchange Format (“GIF”), Portable Network Graphicsformat (“PNG”), Joint Photographic Experts Group (“JPEG”)) or dynamicformats (e.g., animated GIF, MPEG-4, Flash Video (“FLV”), Windows MediaVideo (“WMV”)). The term “image data” or “image” may also refer todigital information representing an image and stored in an iOS “live”format, comprising a combination of a static image file (e.g., JPEG) anda video file (e.g., HD video or quicktime movie file).

FIG. 1 is a block diagram of an exemplary system 100. System 100 may beused to register and authenticate a user by manipulating images of areal scene using augmented reality, consistent with disclosedembodiments. System 100 may include a server system 105 which mayinclude a registration module 110, an authentication module 120, animage-processing module 130, a location determination system 140, aprocessor 150, and a memory 160. System 100 may additionally include adatabase 180 and a mobile device 190. In some embodiments, as shown inFIG. 1, each component of system 100 may be connected to a network 170.However, in other embodiments components of system 100 may be connecteddirectly with each other, without network 170.

Processor 150 may include one or more processors, microprocessors,central processing units (CPUs), computing devices, microcontrollers,digital signal processors, servers, or any combination thereof. Memory160 may include one or more storage devices configured to store datawhich may be read by a processor, computer, or like device.

Memory 160 may include volatile or non-volatile, magnetic,semiconductor, tape, optical, removable, non-removable, or other typesof computer-readable medium or computer-readable storage devices, Forexample, memory 160 may include random-access memory (RAM), such asstatic RAM (SRAM) or dynamic RAM (DRAM), ROM, magnetic or opticalstorage medium, flash memory devices, electrical, optical, acoustical orother form of propagated signals (e.g., carrier waves, infrared signals,digital signals).

Database 180 may include one or more computing devices configured tostore and/or provide image data to one or more of server system 105,registration module 110, authentication module 120, image-processingmodule 130, location determination system 140, memory 160, and mobiledevice 190. In some aspects, such image data can represent imagesobtained from mobile device 190, registration images, virtual imagesdepicting virtual objects, augmented reality images, and storedinformation about the images, such as metadata. In some aspects,database 180 may include image data needed for the registration processdescribed below in connection with FIG. 4, and/or the authenticationprocess described below in connection with FIG. 5. In some aspects,database 180 may include location information obtained from locationdetermination system 140. A “module” may be a device implemented inhardware, software, firmware, or any combination thereof.

Database 180 may include one or more computing devices configured tostore and/or provide account information relating to a user (e.g., auser account of server system 105). In some aspects, such accountinformation may include user profile information, such as a useridentifier, username, account number, login credentials, deviceidentifier, address, passcode, or other such information. In someaspects, such account information may include personal information suchas demographic (e.g., age), financial (e.g., income), marital status,and/or prior behavior information (e.g. purchase record).

Database 180 may include, for example, one or more Oracle™ databases,Sybase™ databases, or other relational databases or non-relationaldatabases, such as Hadoop™ sequence files, HBase™, or Cassandra™.Database(s) 180 may include computing components (e.g., databasemanagement system, database server, etc.) configured to receive andprocess requests for data stored in memory devices of the database(s)and to provide data from the database(s).

While database 180 is shown separately, in some embodiments database 180may be included in or otherwise related to one or more of server system105, registration module 110, authentication module 120,image-processing module 130, memory 160, and mobile device 190.

Database 180 may be configured to collect, store, and/or maintain imagedata from mobile device 190. Database 180 can be configured to providesuch data to the server system 105, registration module 110,authentication module 120, and image-processing module 130. Database 180may collect image data from a variety of other sources, including, forexample, online resources. Database 180 is further described belowconnection with FIG. 3.

Mobile device 190 may include one or more computing devices configuredto perform operations consistent with disclosed embodiments. Forexample, mobile device 190 may include at least one of a laptop, atablet, a smart phone, a gaming device, a wearable computing device, orother type of computing device. Mobile device 190 may include one ormore processors configured to execute software instructions stored inmemory, such as memory included in mobile device 190. Mobile device 190may include software that when executed by a processor performsInternet-related communication and content display processes. Forinstance, mobile device 190 may execute browser software that generatesand displays interfaces including content on a display device includedin, or connected to, mobile device 190. Mobile device 190 may executeapplications that allow mobile device 190 to communicate with componentsover network 170, and generate and display content in interfaces via adisplay device included in mobile device 190. The display device may beconfigured to display images described in FIGS. 4 and 5.

The disclosed embodiments are not limited to any particularconfiguration of mobile device 190. For instance, mobile device 190 canbe a device that stores and executes mobile applications that interactwith server system 105 and/or database 180 to perform aspects of thedisclosed embodiments. In certain embodiments, mobile device 190 may beconfigured to execute software instructions relating to locationservices, such as GPS locations. For example, mobile device 190 may beconfigured to determine a geographic location and provide location dataand time stamp data corresponding to the location data. In yet otherembodiments, mobile device 190 may capture video and/or images.

Registration module 110 may include one or more computing componentsconfigured to register a user for augmented reality authentication.Registration module 110 may be configured to receive and process imagesfrom mobile device 190 and/or database 180. Consistent with disclosedembodiments, these images may include registration images depicting areal scene, virtual images depicting virtual objects, and/or augmentedreality images. In some embodiments, registration module 110 can beconfigured to communicate with authentication module 120,image-processing module 130, location determination system 140, andmobile device 190 to carry out the registration steps. Consistent withdisclosed embodiments, an augmented reality registration image is storedin memory, such as memory 160, database 180, or mobile device 190. Insome embodiments, registration module 110 may be implemented on mobiledevice 190.

Authentication module 120 may include one or more computing componentsconfigured to perform operations consistent with authenticating a user.In some embodiments, a user registers for augmented realityauthentication through registration module 110. During registration,user registration information may be generated and stored in memory 160,database 180, or mobile device 190, for example. The user registrationinformation may include the registration image and/or augmented realityregistration image. To authenticate the user using authenticated realityauthentication, a registered user can provide image data to theauthentication module 120 via mobile device 190. Consistent withdisclosed embodiments, the image data may include data representing realscenes, virtual images, augmented reality images, and/or data related toimages, such as meta-data. Authentication module 120 can be configuredto authenticate the user based on a comparison of the image data withpreviously-stored registration image data. In some embodiments,authentication module 120 can grant access to the user account based onthe authentication. In some embodiments, authentication module 120 canbe configured to communicate with registration module 110,image-processing module 130, location determination system 140, andmobile device 190 to carry out the authentication steps. In someembodiments, authentication module 120 may be implemented on mobiledevice 190.

Image-processing module 130 may include one or more computing componentsconfigured to collect and process images. Image-processing module 130may be configured to communicate with registration module 110,authentication module 120, location determination system 140, database180, and mobile device 190 to enable registration and/or authenticationusing augmented reality.

Consistent with disclosed embodiments, image-processing module 130 maybe configured to perform an image verification procedure on image data.For example, the image verification procedure may receive datarepresenting images, metadata, and other information from registrationmodule 110, authentication module 120, location determination system140, processor 150, memory 160, database 180, and mobile device 190 toverify that image data was received from an image sensor of a mobiledevice. In some embodiments, image-processing module 130 verifies theimage data based on image metadata, such as file format and embeddedlocation information. Image-processing module 130 may also verify theimage data based on detected usage of a mobile device, such as usage ofan image sensor or movement of the mobile device.

Consistent with disclosed embodiments, image-processing module 130 maybe configured to perform image matching between information representingtwo or more images. For example, image-processing module 130 may receivethe image data from registration module 110, authentication module 120,location determination system 140, memory 160, database 180, or mobiledevice 190. Image-processing module 130 may extract image features fromreceived image data to calculate a comparison metric. In some aspects,the comparison metric is calculated using identification models. Theidentification models may include convolutional neural networks thatdetermine attributes in an image based on features extracted from theimage. In various aspects, identification models may include statisticalalgorithms to determine a similarity between ages. For example,identification models may include regression models that estimate therelationships among input and output variables. In some aspects,identification models may additionally sort elements of a dataset usingone or more classifiers to determine the probability of a specificoutcome. Statistical identification models may be parametric,non-parametric, and/or semi-parametric models. A convolutional neuralnetwork model can be configured to process an image into a collection offeatures. The convolutional neural network can comprise an input layer,one or more middle layers, and one or more output layers. Image data canbe applied to the input layer. In some embodiments, the input layer cancomprise multiple matrices (e.g., a matrix for each of the red, green,and blue pixel values in an RGB image). In some embodiments, the inputlayer can comprise a single matrix (e.g., a single two-dimensionalmatrix of pixel brightness values). In some aspects, each middle layerand the output layer can be a deterministic function of the values ofthe preceding layer. The convolutional neural network can include one ormore convolutional layers. Each convolutional layer can be configured toconvolve one or more spatial filters with the convolutional layer inputto generate a convolutional layer output tensor. In some embodiments,the convolutional neural network can also include pooling layers andfully connected layers according to methods known in the art.Identification models may also include Random Forests composed of acombination of decision tree predictors. Such decision trees maycomprise a data structure mapping observations about something, in the“branch” of the tree, to conclusions about that thing's target value, inthe “leaves” of the tree. Each tree may depend on the values of a randomvector sampled independently and with the same distribution for alltrees in the forest. Identification models may additionally oralternatively include classification and regression trees, or othertypes of models known to those skilled in the art.

Consistent with disclosed embodiments, image-processing module 130 maybe configured to calculate a confidence score representing a confidencelevel that two or more images match. For example, image-processingmodule 130 may calculate the confidence score based on one or morefactors, such as a calculated comparison metric between two or moreimages. In some aspects, image-processing module 130 may communicatewith registration module 110, authentication module 120, locationdetermination system 140, processor 150, memory 160, database 180, ormobile device 190 to collect and process image data, such as locationinformation, time stamp information, date stamp information, lightingconditions, and/or image metadata to calculate the confidence score.

Consistent with disclosed embodiments, image-processing module 130 canbe configured to provide the calculated confidence score toauthentication module 120. Authentication module 120 may determinewhether the confidence score meets a predetermined threshold beforeauthenticating the user. In some aspects, authentication module 120 mayperform a verification challenge if the confidence score is within apredetermined range. For example, the verification challenge must beperformed successfully to authenticate the user.

In some embodiments, image-processing module 130 may be configured toreceive image data from registration module 110 or authentication module120 to generate data representing an augmented reality image. Forexample, image-processing module 130 may receive data representing oneor more virtual images to superimpose on image data depicting a realscene. In some embodiments, image-processing module 130 may beimplemented on mobile device 190.

FIG. 1 shows registration module 110, authentication module 120, andimage-processing module 130 as different components. However,registration module 110, authentication module 120, and image-processingmodule 130 may be implemented in the same computing system.

Location determination system 140 may include one or more computingcomponents configured to perform operations consistent with determininga location of a mobile device 190. In some embodiments, locationdetermination system 140 may transmit a request to mobile device 190 forlocation information. In response to the request, mobile device 190 maytransmit location information such as geographic coordinates oridentifiers to the location determination system 140 via network 170.The location determination system 140 may map the geographic coordinatesor identifiers to a specific geographic location. The locationdetermination system 140 may include satellite-based geolocationsystems, e.g., GPS, Glonass, Galileo, etc.; long-range terrestrialgeolocation systems, e.g., LORAN; short-range network based geolocationsystems, e.g., network-based cellular e911; short-range proximitylocation sensing, e.g., 802.11 access point identification,line-of-sight location identification, e.g., IRdA or other visible,sonic or invisible electromagnetic waves which are confined by barriers;RFID based location detectors; and the like.

In some embodiments, location determination system 140 can be configuredto communicate with registration module 110, authentication module 120,image-processing module 130, and mobile device 190. For example,location determination module 140 may receive image data fromregistration module 110, authentication module 120, image-processingmodule 130, and/or mobile device 190, and embed location informationinto the image data. In some embodiments, location determination system140 may be implemented on mobile device 190.

Network 170 may be any type of network configured to providecommunications between components of system 100. For example, network170 may be any type of network (including infrastructure) that providescommunications, exchanges information, and/or facilitates the exchangeof information, such as the Internet, a Local Area Network, near fieldcommunication (NFC), optical code scanner, or other suitableconnection(s) that enables the sending and receiving of informationbetween the components of system 100. In some embodiments, one or morecomponents of system 100 can communicate through network 170. In variousembodiments, one or more components of system 100 may communicatedirectly through one or more dedicated communication links.

It is to be understood that the configuration and boundaries of thefunctional building blocks of system 100 have been defined herein forthe convenience of the description. Alternative boundaries can bedefined so long as the specified functions and relationships thereof areappropriately performed. Alternatives (including equivalents,extensions, variations, deviations, etc., of those described herein)will be apparent to persons skilled in the relevant art(s) based on theteachings contained herein. Such alternatives fall within the scope andspirit of the disclosed embodiments.

FIG. 2 is a block diagram of mobile device 190, consistent withdisclosed embodiments. In one embodiment, mobile device 190 may includeprocessor 202, location sensor 204, input/output (I/O) system 206, andmemory 210. In some embodiments, mobile device 190 may take the form ofa mobile computing device (e.g., a wearable device, smartphone, tablets,laptop, or similar device), a desktop (or workstation or similardevice), or a server. Alternatively, mobile device 190 may be configuredas a particular apparatus, embedded system, dedicated circuit, and thelike based on the storage, execution, and/or implementation of thesoftware instructions that perform operations consistent with thedisclosed embodiments. According to some embodiments, mobile device 190may be configured to provide a web browser or similar computingapplication capable of accessing web sites, consistent with disclosedembodiments.

Processor 202 may include one or more known processing devices, such asmobile device microprocessors manufactured by Intel™, NVIDIA™, orvarious processors from other manufacturers. As would be appreciated byone of skill in the art, the disclosed embodiments are not limited to aparticular processor type.

Memory 210 may include one or more storage devices configured to storeinstructions for performing operations related to disclosed embodiments.For example, memory 210 may be configured with one or more softwarecomponents, such as program 212, that when executed by processor 202,can cause mobile device 190 to perform operations consistent with thedisclosed embodiments. The disclosed embodiments are not limited toseparate programs or computers configured to perform dedicated tasks.For example, mobile device 190 can be configured to perform thedisclosed functions of mobile device 190 by one or more programs storedin memory 210 (e.g., program 212). In some embodiments, memory 210 canbe configured to store data 216 used by one or more programs 212. Insome embodiments, program 212 may include one or more of registrationmodule 110, authentication module 120, or image processing module 130.

In certain embodiments, memory 210 may store an augmented realityapplication 214 that may be executed by processor(s) 202 to perform oneor more augmented reality processes consistent with disclosedembodiments. In certain aspects, augmented reality application 214, oranother software component, may be configured to request identificationfrom server system 105 or determine the location of mobile device 190.

Location sensor 204 may include sensor(s) and/or system(s) capable ofdetermining a location of mobile device 190, such as a GlobalPositioning System (GPS) receiver, Bluetooth transceiver, or WiFitransceiver. When location sensor 204 includes multiple sensor(s) and/orsystem(s), mobile device 190 can be configured to determine geographiccoordinates or identifiers, such as latitude or longitude, based on dataprovided from multiple sensor(s) and/or system(s). Mobile device 190 canbe configured to send the geographic coordinates or identifiersdetermined by location sensor 204 to other components of system 100 via,for example, network 170. Location sensor 204 may also include motionsensors for detecting movement of the mobile device. For example,location sensor 204 may include a proximity sensor, accelerometer,gyroscope, magnetometer, and/or ambient light sensor.

I/O system 206 may include one or more devices configured to allow datato be received and/or transmitted by mobile device 190 and to allowmobile device 190 to communicate with other machines and devices, suchas other components of system 100. For example, I/O system 206 mayinclude a screen for providing information to the user. I/O system 206may also include components for NFC communication. I/O system 206 mayalso include one or more digital and/or analog devices that allow a userto interact with mobile device 190 such as a touch-sensitive area,buttons, or microphones. I/O system 206 may also include one or moreaccelerometers to detect the orientation and inertia of mobile device190. I/O system 206 may also include other components known in the artfor interacting with server system 105.

In some embodiments, mobile device 190 may include an image sensor 220(e.g., a digital camera). Image sensor 220 can be configured to generatedata representing still images or video and send it to other componentsof system 100 via, for example, network 170.

The components of mobile device 190 may be implemented in hardware,software, or a combination of both hardware and software, as will beapparent to those skilled in the art.

FIG. 3 is a block diagram of an exemplary database 180, in accordancewith disclosed embodiments. Database 180 may include a communicationdevice 302, one or more database processors 304, and database memory 310including one or more database programs 312 and data 314. In someembodiments, database 180 may be hosted on one or more computing devices(e.g., desktops, workstations, servers, and computing clusters).

Communication device 302 may be configured to communicate with one ormore components of system 100, such as server system 105, registrationmodule 110, authentication module 120, image-processing module 130,location determination system 140, and/or mobile device 190. Inparticular, communication device 302 may be configured to provide toregistration module 110, authentication module 120, image-processingmodule 130 image data that may be used to register and/or authenticate auser.

The components of database 180 may be implemented in hardware, software,or a combination of both hardware and software, as will be apparent tothose skilled in the art. For example, although one or more componentsof database 180 may be implemented as computer processing instructionmodules, all or a portion of the functionality of database 180 may beimplemented instead in dedicated electronics hardware.

Data 314 may be data associated with image data obtained from mobiledevice 190, registration images, virtual images depicting virtualobjects, augmented reality images, and stored information about theimages, such as metadata. Data 314 may include, for example, accountinformation relating to a user such as a user identifier, username,account number, login credentials, device identifier, address, passcode,or other user profile information. Data 314 may include personalinformation such as demographic (e.g., age), financial (e.g., income),marital status, and/or prior behavior information (e.g. purchaserecord).

FIG. 4 is a flowchart of an exemplary method 400 for registering a userfor augmented reality authentication, consistent with embodiments of thepresent disclosure. Method 400 can be performed using system 100. Insome embodiments, one or more steps of method 400 can be performed bymobile device 190. In various embodiments, one or more steps of method400 can be performed by server system 105. In certain embodiments,method 400 can be performed entirely by server system 105, or entirelyby mobile device 190.

At step 402, system 100 receives a request from a user to register foraugmented reality authentication. In some embodiments, the request isreceived by registration module 110 from mobile device 190 over network170. For example, the user may interact with a user interface on themobile device 190 to transmit the request for registration. The user mayhave a registered account with server system 105. In some aspects, theuser may register for one or more augmented reality authentications forone or more registered accounts.

At step 404, system 100 receives registration image data depicting areal scene from a mobile device 190. In some embodiments, registrationmodule 110 provides instructions to a user interface on the mobiledevice 190. For example, the user interface may instruct the user tocapture an image using an image sensor 220 of mobile device 190. Theimage depicts a real scene such as a bedroom or office or interior of anautomobile. In the example embodiments, a real scene can include anyscene for which significant details remain substantially constant, suchthat the particular scene remains recognizable in subsequent images. Insome embodiments, a registration image corresponds to a scene that isfamiliar to and frequented by the user. In some aspects, datarepresenting the captured image is provided to location determinationsystem 140, as discussed below with respect to FIG. 6. In some aspects,the captured image data is provided to image-processing module 130 toperform an image verification procedure, as discussed below with respectto FIG. 7. The registration image data may be stored in memory 160,database 180, and/or mobile device 190.

At step 406, system 100 receives a selection of one or more virtualimages (or virtual objects) to overlay on the registration image. Insome embodiments, registration module 110 provides instructions to auser interface on the mobile device 190. For example, the user interfacemay instruct the user to select one or more virtual images from a listof virtual images. In some aspects, the virtual image may depict avirtual object such as a telephone, teddy bear, geometric shapes, randomobjects, things or any other virtual object. The virtual images may beacquired from database 180, memory 160, and/or mobile device 190. Forexample, data representing the virtual images may be acquired from animage sensor 220 or data 216 of mobile device 190. The user interfacemay then display the registration image from step 404, and instruct theuser to select a location on the registration image on which to overlaythe selected one or more virtual images. For example, the user mayselect a first location on the registration image to overlay a firstvirtual image, and select a second location on the registration image tooverlay a second virtual image.

At step 408, the system 100 generates an augmented reality registrationimage. In some aspects, the augmented reality registration imagecomprises the selected one or more virtual images overlaid on theregistration image at the locations selected at step 406. In someembodiments, the image-processing module 130 receives data representingthe registration image, the selected one or more virtual images, and theselected one or more locations on the registration image on which tooverlay the selected one or more virtual images, and generates theaugmented reality registration image. For example, the image-processingmodule 130 overlays the virtual image on the registration image at theselected location, and generates the augmented reality registrationimage. In some embodiments, data representing the augmented realityregistration image is sent to location determination system 140, asdiscussed in further detail below with respect to FIG. 6. The augmentedreality registration image may include image data, such as geo-locationinformation, time stamp information, date stamp information, lightingconditions, unique device identifier (either mobile, laptop, desktop, orany IoT device) from which the image was captured and/or image metadata.

At step 410, system 100 stores the augmented reality registration image.For example, the augmented reality registration image may be stored inmemory 160, database 180, and/or mobile device 190. In some aspects, theaugmented reality registration image is stored in an account associatedwith the user.

In some embodiments, the user may repeat the steps in method 400 toregister for multiple augmented reality authentications. For example,the system may generate and store multiple augmented realityregistration images for one or more accounts associated with the user.This enables the system to generate augmented reality registrationimages for the user based on different registration images depictingreal scenes. For example, the user may select their bedroom at theirplace of residence for a first registration image to generate a firstaugmented reality registration image. The user may further select theiroffice at their place of business for a second registration image togenerate a second augmented reality registration image, for addedflexibility.

FIG. 5 is a flowchart of an exemplary method for authenticating a userusing augmented reality, consistent with embodiments of the presentdisclosure. Method 500 can be performed using system 100. In someembodiments, one or more steps of method 500 can be performed by mobiledevice 190. In various embodiments, one or more steps of method 500 canbe performed by server system 105. In certain embodiments, method 500can be performed entirely by server system 105, or entirely by mobiledevice 190. According to method 500, at step 502, server system 105 canbe configured to receive a request for authentication using augmentedreality authentication. For example, the request may be received from(or at) a mobile device 190 associated with a user and relayed to serversystem 105 via network 170. In some embodiments, the request is receivedfrom the same or a different mobile device as discussed at step 402during the registration for augmented reality authentication. In someembodiments, the user authentication request is for access to a useraccount (e.g., a user account of server system 105).

At step 504, system 100 is configured to receive a first image depictinga real scene. For example, the first image may be received at mobiledevice 190 associated with the user from sensor 220 and stored in memory210 for processing by program 212 or application 214. In someembodiments, the first image is transmitted from mobile device 190 toserver system 105 via network 170 for processing by authenticationmodule 120 or image processing module 130. In some embodiments, thefirst image is received at or from the same or a different mobile deviceas discussed at step 402 during the registration for augmented realityauthentication. Authentication module 120 may provide instructions to auser interface on the mobile device 190. For example, the user interfacemay instruct the user to capture an image using an image sensor 220 ofmobile device 190. The user may be instructed to capture substantiallythe same image as that taken in step 404 during registration. In someaspects, the captured image is provided to location determination system140, as discussed below with respect to FIG. 6. In some aspects, thecaptured image is provided to image-processing module 130 to perform animage verification procedure, as discussed below with respect to FIG. 7.The registration image may be stored in memory 160, database 180, and/ormobile device 190.

In some embodiments, authentication module 120 may transmit instructionsto the user interface of mobile device 190 to aid the user with theauthentication process. For example, the instructions may provide theuser interface with a visual aid. In some embodiments, the user isprompted to enter a user identifier associated with the user accountafter step 502. For example, the user may be prompted to enter ausername, token, passcode, mobile device identifier, or otheridentifier. In some embodiments, the request at step 502 includes theuser identifier, mobile device identifier, or a determined location ofthe mobile device. For example, the user identifier, mobile deviceidentifier, or determined location of the mobile device may be stored inmemory 210 and/or transmitted automatically from mobile device 190.Authentication module 120, after receiving the identifier, may thenretrieve registration image or augmented reality registration imagestored in an account associated with the identifier. For example, theretrieved registration image or augmented reality registration image maybe displayed on the user interface of mobile device 190.

In some embodiments, authentication module 120 may compare thedetermined location of the mobile device with location informationembedded in the registration image or augmented reality registrationimage stored in an account associated with the identifier. For example,authentication module 120 may retrieve the registration image oraugmented reality registration image for display on mobile device 190when the determined location is within a threshold distance of alocation determined from the location information embedded in theregistration image or augmented reality registration image. In anotherexample, authentication module 120 may retrieve the registration imageor augmented reality registration image when the determined location iswithin a geofence area associated with the location information embeddedin the registration image or augmented reality registration image.

In some embodiments, the displayed registration image or augmentedreality registration image is a translucent version of the originalimage. For example, if the location of the device matches thegeolocation of the original image, the user may use a translucentversion of the original image as a guide for capturing substantially thesame image of the real scene as depicted in the registration image orthe augmented reality registration image. For example, user may beprompted to capture the same image of the real scene using sensor 220 ofmobile device 190.

In some embodiments, system 100 is configured to preprocess the receivedfirst image before displaying the retrieved registration image oraugmented reality registration image on the user interface of mobiledevice 190. For example, the first image may be preprocessed to identifysome features within the image for comparison with similar featuresidentified in the registration image or augmented reality registrationimage. For example, the first image may be preprocessed to identifysignificant features or landmarks within the image, such as a desk, awindow, or a bed. If a comparison with the retrieved registration imageor augmented reality registration image meets a threshold similarityvalue, i.e., a threshold match, with respect to the identifiedsignificant features or landmarks, the retrieved registration image oraugmented reality registration image is displayed on the user interfaceof mobile device 190. In some embodiments, authentication module 120 mayretrieve the registration image or augmented reality registration imagefor display on mobile device 190 when there is a threshold match withrespect to the identified significant features or landmarks, asdescribed above, and when a location of the mobile device is within athreshold distance of a location determined from the locationinformation embedded in the registration image or augmented realityregistration image. In some embodiments, authentication module 120 orimage processing module 130 may be configured to preprocess the firstimage.

In some embodiments, system 100 is configured to preprocess an imagedepicting a real scene obtained from sensor 220 in real-time, beforecapturing the first image. For example, preprocessing of the image maybe conducted in real-time on the mobile device 190, to identifysignificant features or landmarks within the image as described above.In some embodiments, preprocessing of the image must yield a thresholdmatch with respect to the identified significant features or landmarkswithin a predetermined amount of time. For example, if the predeterminedamount of time expires before yielding a match, method 500 may endwithout authenticating the user. In some embodiments, the registrationimage or augmented reality registration image is displayed on the mobiledevice 190 for a predetermined amount of time to assist the user.

At step 506, system 100 is configured to receive a selection of one ormore virtual images to overlay onto the first image. In someembodiments, mobile device 190 receives the selections of virtual imagesand store the selections in memory 210 for processing by program 212 orapplication 214. In some embodiments, mobile device 190 transmits theselections of virtual images to server system 105 via network 170 forprocessing by authentication module 120 or image processing 130. Theselection of virtual images in step 506 may proceed similarly to theselection of virtual images in step 406. In some embodiments,authentication module 120 provides instructions to a user interface onthe mobile device 190. For example, the user interface may instruct theuser to select one or more virtual images from a list of virtual images.In some aspects, the virtual image may depict a virtual object such as atelephone, teddy bear, geometric shapes, random objects, things or anyother virtual object. The virtual images may be acquired from database180, memory 160, and/or mobile device 190. For example, the virtualimages may be acquired from an image sensor 220 or data 216 of mobiledevice 190. In some embodiments, the list of virtual images includes aset of new virtual objects that have not been previously selected by theuser. The user interface may then display the first image from step 504,and instruct the user to select a location on the first image on whichto overlay the selected one or more virtual images. For example, theuser may select a first location on the first image to overlay a firstvirtual object, and select a second location on the first image tooverlay a second virtual object.

At step 508, system 100 generates an augmented reality image. In someembodiments, program 212 or application 214 of mobile device 190generates the augmented reality image and stores the image in memory210. In some embodiments, mobile device 190 transmits the first imageand the selections of virtual images to server system 105 via network170, as described above, to generate the augmented reality image. Forexample, authentication module 120 or image processing 130 may generatethe augmented reality image. In some embodiments, step 508 may proceedsimilarly to the generation of augmented reality image in step 408. Insome aspects, the augmented reality image comprises the selected one ormore virtual images overlaid on the first image at the locationsselected at step 506.

In some embodiments, image-processing module 130 receives the firstimage, the selected one or more virtual images, and the selected one ormore locations on the first image on which to overlay the selected oneor more virtual images, and generates the augmented reality image. Forexample, image-processing module 130 overlays the virtual image on thefirst image at the selected location, and generates the augmentedreality image. In some embodiments, the augmented reality image, and/orthe first image, is sent to location determination system 140, asdiscussed in further detail below with respect to FIG. 6. The augmentedreality image may include image data, such as location information, timestamp information, date stamp information, lighting conditions, and/orimage metadata.

At step 510, server system 105 calculates a comparison metric, asdescribed in further detail below with respect to FIG. 8. For example,image-processing module 130 may receive the first image from step 504,the selection of one or more virtual images of step 506, and/or theaugmented reality image generated in step 508, and calculate acomparison metric reflecting a percentage match between two or more ofthe images, as discussed in further detail with respect to FIG. 8. Insome embodiments, the comparison metric reflects a percentage matchbetween the augmented reality image and the one or more stored augmentedreality images. In some embodiments, the stored augmented reality imagesinclude one or more augmented reality registration images generatedduring method 400. In some embodiments, comparison metric is calculatedat mobile device 190.

At step 512, server system 105 calculates a confidence score, asdescribed in further detail below with respect to FIG. 10. In someembodiments, image-processing module 130 calculates a confidence scorebased on the comparison metric and/or additional parameters, asdiscussed in further detail with respect to FIG. 10. For example, theconfidence score may be calculated based on location, time stamp, and/ordate stamp information relating to the images, lighting conditions,image metadata, and/or device information. In some embodiments, theconfidence score is calculated at mobile device 190.

At step 514, server system 105 authenticates the user based on theconfidence score calculated at step 512. For example, authenticationmodule 120 may authenticate the user based on a comparison of theconfidence score and a number of predetermined thresholds, as discussedin further detail with respect to FIG. 9 below.

In some embodiments, method 500 may proceed directly from step 506 tostep 510 to calculate the comparison metric. For example, server system105 may receive the first image at step 504 and the virtual images atstep 506, and calculate the comparison metric. The comparison metric mayreflect a percentage match between the first image and the registrationimage, a percentage match between the virtual images received at step506 and the virtual images received during registration at step 406, ora percentage match between a combination of the images. Here, the methodcontinues to step 512 to calculate the confidence score based on thecomparison metric. For example, the confidence score may be calculatedbased on the comparison metric and location information associated withthe images and mobile device 190, as discussed in further detail belowwith respect to FIG. 10.

At step 516, server system 105 authorizes access based on theauthentication. For example, server system 105 may authorize access toan account associated with the user (e.g., a user account of serversystem 105) based on the authentication. In some embodiments, theexample authentication techniques may be configured to enable access todata on mobile device 190.

FIG. 6 is a flowchart of an exemplary method for embedding locationinformation in images, consistent with embodiments of the presentdisclosure. In some embodiments, method 600 is implemented by locationdetermination system 140 on server system 105 or on mobile device 190.In some embodiments, one or more steps of method 600 can be performed bymobile device 190. In various embodiments, one or more steps of method600 can be performed by server system 105. In certain embodiments,method 600 can be performed entirely by server system 105, or entirelyby mobile device 190.

At step 602, the location of mobile device 190 is determined (e.g.,using location sensors 204).

At step 604, an image is received from mobile device 190. For example,the image may be received from image sensor 220. In some embodiments,the image is received from registration module 110, authenticationmodule 120, image-processing module 130, memory 160, or database 180.The image may depict a real scene captured by image sensor 220, avirtual image, or an augmented reality image generated at steps 408 and508, as disclosed above.

At step 606, location information determined from step 602 is embeddedinto the image. For example, geolocation data may be embedded in theimage as metadata. In some embodiments, method 600 includes only steps602 and 604. For example, location determination system 140 may embedthe location information in an image stored registration module 110,authentication module 120, image-processing module 130, memory 160,database 180, or mobile device 190.

FIG. 7 is a flowchart of an exemplary method for verifying images,consistent with embodiments of the present disclosure. Method 700 can beperformed using system 100. For example, method 700 may be implementedby image-processing module 130 to verify that an image is authentic andoriginated from the image sensor of mobile device 190. In someembodiments, one or more steps of method 700 can be performed by mobiledevice 190. In various embodiments, one or more steps of method 700 canbe performed by server system 105. In certain embodiments, method 700can be performed entirely by server system 105, or entirely by mobiledevice 190.

At step 702, an image is received from (or accessed by) mobile device190. For example, the image may be captured at mobile device 190 byimage sensor 220. In some embodiments, the image may depict a realscene, such as the image received at steps 404 and 504. In someembodiments, the image is an augmented reality registration imagecomprising one or more virtual images overlaid onto an image receivedfrom the mobile device 190. For example, the image verification method700 can verify that the augmented reality registration image includes animage captured at the mobile device 190 by image sensor 220.

The image verification procedure is then performed at step 704.Image-processing module 130 may verify that the image was received froman image sensor 220 of mobile device 190 by performing one or more ofsteps 706-714. For example, at step 706, image-processing module 130 maydetect a file format of the image at step 706. For example, sensor 220may capture an image and generate image data using a specific fileformat. In some aspects, the file format may include a “live” imagefile, comprising a video file and an image file. As another example, atstep 708, image-processing module 130 may detect usage of image sensor220. For example, augmented reality application 214 or processor 202 maytransmit a confirmation that image sensor 220 was used when transmittingthe image from mobile device 190 for verification. As another example,metadata embedded in the image, such as a time stamp at the time ofimage creation, may be compared to a time the image sensor 220 was usedto capture the image. As another example, at step 710, image-processingmodule 130 may verify the image by detecting movement of the mobiledevice 190 (e.g. using location sensor 204) at the time the image wascaptured by sensor 220. As yet another example, at step 712,image-processing module 130 may determine a location of mobile device190 and compare the determined location to geolocation metadata embeddedin the image at the time of capture, as disclosed above with respect toFIG. 6. For example, location determination system 140 may determine thelocation of the mobile device 190 and transmit the determined locationto image-processing module 130 to perform the image verificationprocedure. As another example, at step 714, image-processing module 130may verify the image by detecting a unique device identifier for theuser device and comparing the detected unique device identifier todevice identifier information embedded in the image at the time ofcapture.

At step 716, image-processing module 130 may verify that the image wasreceived from image sensor 220 of mobile device 190 using one or more ofsteps 706-714. In some embodiments, method 400 requires imageverification before storing the augmented reality image in step 410. Insome embodiments, method 500 requires image verification beforeauthenticating a user.

FIG. 8 is a flowchart of an exemplary method for calculating comparisonmetrics between images, consistent with embodiments of the presentdisclosure. Method 800 can be performed using system 100. In someembodiments, one or more steps of method 800 can be performed by mobiledevice 190. In various embodiments, one or more steps of method 800 canbe performed by server system 105. In certain embodiments, method 800can be performed entirely by server system 105, or entirely by mobiledevice 190. In some embodiments, the comparison metric is calculated byimage-processing module 130 using machine learning techniques. In someembodiments, the comparison metric is calculated by image-processingmodule 130 using a convolutional neural network.

After starting in step 802, image-processing module 130 receives a firstimage in step 804 a. For example, first image may be received frommemory, such as memory 160, database 180, or mobile device 190. Afterstep 804 a, image-processing module 130 can extract machine-learningfeatures from the image using a convolutional neural network in step 806a. Similarly, after starting in step 802, image-processing module 130receives a second image in step 804 b. For example, second image may bereceived from memory, such as memory 160, database 180, or mobile device190. After step 804 b, image-processing module 130 can extractmachine-learning features from the second image using a convolutionalneural network in step 806 b. In some aspects, system 100 can beconfigured to extract machine-learning features from the first andsecond images using different components of system 100. For example,server system 105 can extract the machine-learning features of thesecond image, and mobile device 190 can extract the machine-learningfeatures of the first image. The extracted features may include uniquefeatures relating to the images, such as a landmark or object depictedwithin the image. In some embodiments, server system 105 can determinethe coordinates of the extracted features within the image.

In some embodiments, first and second images may include registrationimages depicting a real scene, virtual images depicting virtual objects,and/or augmented reality images generated during methods 400 and/or 500.For example, image-processing module 130 may extract machine learningfeatures from the registration image and the augmented reality image(for example, the augmented reality image generated as described in FIG.5) to calculate comparison metric 808. As another example,image-processing module 130 may extract machine learning features fromthe registration image and the base first image (for example, the firstimage as described in FIG. 5) to calculate comparison metric 808. Asanother example, image-processing module 130 may extract machinelearning features from the augmented reality registration image and theaugmented reality image (for example, the augmented reality imagegenerated as described in FIG. 5) to calculate comparison metric 808. Asanother example, image-processing module 130 may extract machinelearning features from augmented reality registration image and theaugmented reality image (for example, the augmented reality imagegenerated as described in FIG. 5) to calculate comparison metric 808.

After steps 806 a and 806 b, image-processing module 130 may calculate acomparison metric in step 808. In some embodiments, the calculatedcomparison metric may reflect a percentage match between the first andsecond images. This calculation can involve inputting themachine-learning features extracted from the first and second image datainto a classifier, such as another neural network. In additionalembodiments, image-processing module 130 can be configured to calculatea metric based on the extracted machine-learning features (e.g., aninner product of the machine learning features extracted from the firstimage data and the machine learning features extracted from the secondimage). A value of the metric can indicate the degree of similaritybetween the images. In some instances values of the metric can increasewith increasing similarity. In some embodiments, the calculatedcomparison metric may reflect a degree of similarity between the virtualobject's position within the augmented reality registration image andthe virtual object's position within the augmented reality image (forexample, the augmented reality image generated as described in FIG. 5).For example, the coordinates of the extracted features within the imagedetermined at steps 806 a, 806 b may be used to calculate the comparisonmetric.

In some embodiments, image-processing module 130 may calculate firstcomparison metric associated with a comparison of the augmented realityimage to one or more stored augmented reality registration images. Theimage-processing module 130 may calculate a second comparison metricassociated with a comparison of the first image with one or more storedregistration images. In some embodiments, the augmented reality image ismatched to the augmented reality registration image based on the firstand second comparison metrics, as further discussed below with respectto FIG. 10.

FIG. 9 is a flowchart of an exemplary method for using a confidencescore to authenticate users, consistent with embodiments of the presentdisclosure. Method 900 can be performed using system 100. In someembodiments, one or more steps of method 900 can be performed by mobiledevice 190. In various embodiments, one or more steps of method 900 canbe performed by server system 105. In certain embodiments, method 900can be performed entirely by server system 105, or entirely by mobiledevice 190.

At step 902, server system 105 calculates a confidence scorerepresenting a level of confidence that a first image matches a secondimage. In some embodiments, the first and second images include theimages depicting a real scene received at steps 404 and 504, the virtualimages received at steps 406 and 506, and/or the augmented realityimages disclosed in steps 408 and 508. In some embodiments, theconfidence score is calculated by image-processing module 130, asdisclosed in further detail below with respect to FIG. 10.

At step 904, server system 105 compares the calculated confidence scoreto a first predetermined threshold. In some embodiments, steps 904-914are performed by authentication module 120. For example, authenticationmodule 120 may determine that the confidence score is greater than thefirst threshold and proceed to authenticate the user at step 906. If theauthentication module 120 determines that the confidence score is lessthan the first threshold, it may compare the confidence score to asecond predetermined threshold at step 908. If the confidence score isdetermined to be less than the second threshold, authentication module120 proceeds to step 914 and does not authenticate the user. In someembodiments, if the confidence score is determined to be less than thesecond threshold, authentication module 120 proceeds to step 910 andperforms a verification challenge. For example, the verificationchallenge may include an over-the-phone challenge. In some embodiments,the over-the-phone challenge includes transmitting a token or passcodeto the mobile device 190 associated with the user. The user is thenprompted through a user interface to enter the transmitted token orpasscode. Authentication module 120 then compares the transmitted andreceived tokens or passcode to determine if there is a match. Theauthenticated module 120 then proceeds to step 906 to authenticate theuser when there is match. In some embodiments, the token or passcode isa one-time token or passcode that expires after a predetermined amountof time.

FIG. 10 is a flowchart of an exemplary method for calculating aconfidence score, consistent with embodiments of the present disclosure.In some embodiments, method 1000 is implemented by image-processingmodule 130 on server system 105 or on mobile device 190. In someembodiments, one or more steps of method 1000 can be performed by mobiledevice 190. In various embodiments, one or more steps of method 1000 canbe performed by server system 105. In certain embodiments, method 1000can be performed entirely by server system 105, or entirely by mobiledevice 190.

Method 1000 begins at step 1002 to calculate a confidence scorerepresenting a level of confidence that a first image matches a secondimage. In some embodiments, the first and second images include theimages depicting a real scene received at steps 404 and 504, the virtualimages received at steps 406 and 506, and/or the augmented realityimages disclosed in steps 408 and 508. In some embodiments,image-processing module 130 may calculate the confidence score at step1018 by comparing one or more factors associated with the first andsecond images. For example, the one or more factors may includecomparison metric 1004, location information 1006, time stampinformation 1008, date stamp information 1010, lighting conditions 1012,image metadata 1014, and device information 1016. In some embodiments,the factors are weighted to calculate the confidence score.

In some embodiments, comparison metric 1004 may be obtained fromimage-processing module 130 as disclosed above with respect to FIG. 8.For example, the comparison metric 1004 may include a percentage matchbetween the first and second images. In some embodiments, comparisonmetric 1004 may comprise one or more comparison metrics, as discussedabove with respect to FIG. 8. For example, comparison metric 1004 maycomprise a first comparison metric associated with a comparison of theaugmented reality image to one or more stored augmented realityregistration images, and may also comprise a second comparison metricassociated with a comparison of the first image with one or more storedregistration images.

In disclosed aspects, location information 1006 includes locationinformation obtained from location determination system 140 and embeddedin the first and second images, as disclosed in FIG. 6 above. Forexample, image-processing module 130 may compare geolocation metadataembedded in the first and second images. In some embodiments,image-processing module 130 may compare device information 1016associated with a device from which the first and second images werecaptured to ensure that the devices used to perform the augmentedreality authentication are the same devices. For example, such deviceinformation 1016 may include a unique device identifier, a make, and/ora model of the device. Image-processing module 130 may compare timestamp information 1008 or date stamp information 1010 embedded in thefirst and second images to verify the images are authentic.Image-processing module 130 may compare lighting conditions 1012 orother image metadata 1014, such as date of creation, author of image,and other technical information describing the image. At step 1018,image-processing module 130 calculates the confidence score by weighingone or more of the factors 1004-1016 and ends at step 1020. In someembodiments, the image verification procedure disclosed in FIG. 7 may beused as a factor for calculating the confidence score. In someembodiments, the location of the device (e.g., determined by locationdetermination system 140) may be compared to location information 1006embedded in the first or second images and used as a factor forcalculating the confidence score.

FIG. 11 is an illustration of a mobile device capturing an image of areal-world environment, consistent with embodiments of the presentdisclosure. As disclosed above, the mobile device 190 may be a mobiledevice, a tablet, a laptop, a cellular device, a personal computer, asmartphone (e.g., Apple iPhone, Blackberry, Android-based phones, etc.),and/or a wearable smart device such as a smart watch. The mobile device190 may include an image sensor 220 such as a camera. A user of themobile device may be prompted through a graphical user interface tocapture an image of a real scene 1102 using image sensor 220 of mobiledevice 190. The captured image may be displayed on a user interface 1104of the mobile device display. For example, the user may capture a realscene 1102 of a real-world environment such as the user's office. Thecaptured image of the real scene 1102 may be stored or processed byserver system 105 or mobile device 190 as the registration image of FIG.4 or first image of FIG. 5.

FIGS. 12-13 are exemplary illustrations of a user interface on a mobiledevice, consistent with embodiments of the present disclosure. In someembodiments, the exemplary graphical user interfaces may be displayed onmobile device 190 and may take the image from image sensor 220 andmodify it to include elements displayed in a user interface on mobiledevice 190. In some embodiments, the exemplary graphical user interfacesmay be displayed when a user opens an application running on mobiledevice 190, activating the image sensor 220.

Graphical user interface 1202 shows an interface with a grid outline toassist the user in capturing real scene 1102. The graphical userinterface 1202 may prompt the user to capture an image, such as realscene 1102. The interface 1202 may further prompt the user to modify thecaptured image, for example, by prompting the user to select one or morevirtual images to overlay on the captured real scene 1102 to generate anaugmented reality image. For example, the user may be prompted throughuser interface 1302 to select a virtual image, such as virtual object1304 depicting a telephone, to overlay on the captured real scene 1102.The user may select a location on the grid of user interface 1304 onwhich to overlay the selected virtual object 1304. In some embodiments,the user selects the location on the grid to overlay the virtual imagebefore selecting the virtual image from a list of available virtualimages. For example, the user selects a location on the grid, promptingthe user interface 1304 to provide a dialogue box prompting the user toselect a virtual image from a list of available virtual images. Once theuser selects the desired virtual image, it is overlayed on the capturedreal scene 1102 at the selected location on the grid. In someembodiments, the user selects the desired virtual image first, and thenselects the location on the grid on which to overlay the virtual image.In some embodiments, the user selects more than one virtual image tooverlay on the captured image. In some embodiments, the steps ofcapturing the real scene, selecting the virtual image, and overlayingthe virtual image onto the real scene to generate the augmented realityimage are performed entirely by server system 105 or by mobile device190. In some embodiments, the images are stored temporarily on mobiledevice 190 for processing, and then transmitted to server system 105 forstorage and/or further processing.

The foregoing description has been presented for purposes ofillustration. It is not exhaustive and is not limited to precise formsor embodiments disclosed. Modifications and adaptations of theembodiments will be apparent from consideration of the specification andpractice of the disclosed embodiments. For example, the describedimplementations include hardware and software, but systems and methodsconsistent with the present disclosure can be implemented with hardwarealone. In addition, while certain components have been described asbeing coupled to one another, such components may be integrated with oneanother or distributed in any suitable fashion.

Moreover, while illustrative embodiments have been described herein, thescope includes any and all embodiments having equivalent elements,modifications, omissions, combinations (e.g., of aspects across variousembodiments), adaptations and/or alterations based on the presentdisclosure. The elements in the claims are to be interpreted broadlybased on the language employed in the claims and not limited to examplesdescribed in the present specification or during the prosecution of theapplication, which examples are to be construed as nonexclusive.Further, the steps of the disclosed methods can be modified in anymanner, including reordering steps and/or inserting or deleting steps.

Instructions or operational steps stored by a computer-readable mediummay be in the form of computer programs, program modules, or codes. Asdescribed herein, computer programs, program modules, and code based onthe written description of this specification, such as those used by thecontroller, are readily within the purview of a software developer. Thecomputer programs, program modules, or code can be created using avariety of programming techniques. For example, they can be designed inor by means of Java, C, C++, assembly language, or any such programminglanguages. One or more of such programs, modules, or code can beintegrated into a device system or existing communications software. Theprograms, modules, or code can also be implemented or replicated asfirmware or circuit logic.

The features and advantages of the disclosure are apparent from thedetailed specification, and thus, it is intended that the appendedclaims cover all systems and methods falling within the true spirit andscope of the disclosure. As used herein, the indefinite articles “a” and“an” mean “one or more.” Similarly, the use of a plural term does notnecessarily denote a plurality unless it is unambiguous in the givencontext. Words such as “and” or “or” mean “and/or” unless specificallydirected otherwise. Further, since numerous modifications and variationswill readily occur from studying the present disclosure, it is notdesired to limit the disclosure to the exact construction and operationillustrated and described, and accordingly, all suitable modificationsand equivalents may be resorted to, falling within the scope of thedisclosure.

Other embodiments will be apparent from consideration of thespecification and practice of the embodiments disclosed herein. It isintended that the specification and examples be considered as exampleonly, with a true scope and spirit of the disclosed embodiments beingindicated by the following claims.

What is claimed is:
 1. A computer-implemented method for generating anaugmented reality image, the method comprising: receiving an imagedepicting a real scene; receiving a selection of a virtual object;receiving a selection of a position on the image, the selected positioncorresponding to the selected virtual object; and storing an augmentedreality image comprising: the received image; the selected virtualobject; and the selected position, wherein: the selected virtual objectis overlaid on the image at the selected position; and storing theaugmented reality image comprises storing the augmented reality image inassociation with a user account in response to a request to use theaugmented reality image as a security feature for the user account. 2.The method of claim 1, wherein receiving a selection of a virtual objectcomprises receiving a selection of a virtual object selected from apredetermined list of virtual objects.
 3. The method of claim 1,wherein: the virtual object is a first virtual object; the position is afirst position; and the method further comprises: receiving a selectionof a second virtual object; and receiving a selection of a secondposition on the received image, the second position corresponding to thesecond virtual object.
 4. The method of claim 3, wherein: the firstvirtual object is overlaid on the image at the first position; and thesecond virtual object is overlaid on the image at the second position.5. The method of claim 3, wherein: the selection of the first positionis received after the selection of the first virtual object; and theselection of the second position is received after the selection of thesecond virtual object.
 6. The method of claim 3, wherein: the selectionof the first virtual object is received after the selection of the firstposition; and the selection of the second virtual object is receivedafter the selection of the second position.
 7. The method of claim 1,wherein the selection of the virtual object is received after theselection of the position.
 8. The method of claim 1, wherein theselection of the position is received after the selection of the virtualobject.
 9. The method of claim 1, wherein the augmented reality imagecomprises at least one of geo-location information, time stampinformation, data stamp information, lighting conditions information, ordevice identifier information.
 10. The method of claim 1, whereinreceiving the image comprises receiving the image from an image sensorof a mobile device.
 11. The method of claim 1, further comprising:sending a command to a user interface, the command instructing a user toselect the virtual object and the position.
 12. The method of claim 1,further comprising: transmitting the augmented reality image in responseto a request to use the image in a verification process.
 13. A systemfor generating an augmented reality image, the system comprising: atleast one processor; and a storage medium storing instructions that,when executed by the at least one processor, configure the at least oneprocessor to perform operations comprising: receiving an image depictinga real scene; receiving a selection of a virtual object; receiving aselection of a position on the image, the selected positioncorresponding to the selected virtual object; and storing an augmentedreality image, the augmented reality image comprising: the receivedimage; the selected virtual object; and the selected position, wherein:the selected virtual object is overlaid on the image at the selectedposition; and storing the augmented reality image comprises storing theaugmented reality image in association with a user account in responseto a request to use the augmented reality image as a security featurefor the user account.
 14. The system of claim 13, wherein the operationsfurther comprise: sending a command to a user interface, the commandinstructing a user to select the virtual object and the position. 15.The system of claim 13, wherein the operations further comprise:transmitting the augmented reality image in response to a request to usethe image in a verification process.
 16. The system of claim 13,wherein: receiving a selection of a virtual object comprises receiving aselection of a first virtual object; receiving a selection of a positioncomprises receiving a selection of a first position; and the operationsfurther comprise: receiving a selection of a second virtual object; andreceiving a selection of a second position on the image, the secondposition corresponding to the second virtual object.
 17. The system ofclaim 16, wherein the first virtual object is overlaid on the image atthe first position and a second image is overlaid on the image at thesecond position.
 18. The system of claim 13, wherein receiving an imagecomprises receiving an image captured by an image sensor of a mobiledevice.
 19. A non-transitory computer-readable medium storinginstructions that, when executed by at least one processor, cause the atleast one processor to perform operations comprising: receiving an imagedepicting a real scene; receiving a selection of a virtual object;receiving a selection of a position on the image, the selected positioncorresponding to the selected virtual object; and storing an augmentedreality image, the augmented reality image comprising: the receivedimage; the selected virtual object; and the selected position, wherein:the selected virtual object is overlaid on the image at the selectedposition; and storing the augmented reality image comprises storing theaugmented reality image in association with a user account in responseto a request to use the augmented reality image as a security featurefor the user account.